/**
 * 尊敬的用户，你好：页面 JS 面板是高阶用法，一般不建议普通用户使用，如需使用，请确定你具备研发背景，能够自我排查问题。
 * 我们可以用 JS 面板来开发一些定制度高功能，比如：调用API接口，自定义动作执行等等。
 */

// 当页面渲染完毕后马上调用下面的函数，这个函数是在当前页面 - 设置 - 生命周期 - 页面加载完成时中被关联的。
export function didMount() {
    ("「页面 JS」：当前页面地址 " + location.href);
    let lineChart = this.$$("zfyy_form_chart_bar_13q1q3");
    debugger
    getDataLitigantTotal().then(res => {
        debugger

        const transformedData = [
            {
                "name": "法人和其他组织",
                "color": [
                    {
                        "offset": 0,
                        "color": "#5CA5FF"
                    },
                    {
                        "offset": 1,
                        "color": "#5CA5FF"
                    }
                ],
                data: res
                    .filter(item => item.litigant_big_type_code === '2')
                    .map(item => ({
                        text: item.regionName,
                        value: item.litignatCount
                    })),
                checked: false
            },
            {
                "name": "个体工商户",
                "color": [
                    {
                        "offset": 0,
                        "color": "#6F5CFF"
                    },
                    {
                        "offset": 1,
                        "color": "#6F5CFF"
                    }
                ],
                data: res
                    .filter(item => item.litigant_big_type_code === '3')
                    .map(item => ({
                        text: item.regionName,
                        value: item.litignatCount
                    })),
                checked: false
            }
        ];


        lineChart.data.props.dataSource.options = transformedData || [];
    });

    let lineChart1 = this.$$("zfyy_form_chart_pie_gb9ahr");

    getCityRegionData().then(res => {
        debugger
        if (!res || !res.length) {
            console.warn("未获取到数据");
            return;
        }

        // 转换数据为所需格式
        const transformedData = res.map(item => ({
            name: item.industry_category_name,    // 区域名称
            text: item.industry_category_name,    // 显示文本
            value: parseInt(item.litigantCount),          // 使用总评分作为值
            unit: "个"                    // 单位
        }));

        console.log("转换后的数据:", transformedData);

        // 更新图表数据
        if (lineChart1 && lineChart1.data && lineChart1.data.props) {
            lineChart1.data.props.dataSource.options = transformedData;
        } else {
            console.error("图表组件未正确初始化");
        }

    }).catch(error => {
        console.error("数据处理错误:", error);
    });


}


/**
 * 获取城市区域数据
 */
function getCityRegionData() {
    return new Promise((resolve, reject) => {
        const jsonParams = { pageSize: 99999 };
        const dataModeId = "ds_mod:78fb432d-0cf9-479d-9990-c886a903db4f";

        api.DATA_SOURCE_EXECUTE(dataModeId, 'ddcat', [], [], JSON.stringify(jsonParams))
            .then(res => {
                if (res && res.result) {
                    resolve(res.result);
                } else {
                    reject(new Error("无效的响应数据"));
                }
            })
            .catch(error => {
                console.error("数据请求失败:", error);
                reject(error);
            });
    });
}


function getDataLitigantTotal() {

    return new Promise((resolve, reject) => {
        const jsonParams = { pageSize: 99999 };
        // 使用数据模型来代替默认查询逻辑，dataModeId为数据模型ID
        const dataModeId = "ds_mod:698a5ab1-d450-4746-8122-646f0d8c2b35";
        api.DATA_SOURCE_EXECUTE(dataModeId, 'ddcat', [], [], JSON.stringify(jsonParams))
            .then(res => {
                resolve(res.result);
            }).catch(() => {
            reject();
        })
    })
}
